home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacWorld 1999 January - Disc 2
/
Macworld (1999-01) (Disk 2).dmg
/
Serious Demos
/
Symbolic Composer 4.2
/
Environment
/
System
/
CADAR
/
Symbols
/
Ornamentation
/
rnd-ornament
< prev
next >
Wrap
Text File
|
1998-10-22
|
4KB
|
129 lines
rnd-ornament min max melody
&key (step 1) (type 'norm) (rhy-type 'evens)
(rhy nil) (pcnt 100) (rnd-type 'norm) (to-pcnt nil)
(step-type 'norm) (rnd-seed nil) (seed-print nil)
legal types 'norm 'rnd
legal rhy-types 'all 'evens 'odds
legal rnd-types 'norm 'gauss
legal step-types 'norm 'change
makes random ornamentation of length between min and max.
the difference of multi-ornament is that multi-ornament
always ornament up or down.
rnd-ornament selects by random which way to go every single
ornament-note.
with type 'norm it always finds it's way back to the
beginning.
so a single note 'a with min 5 and max 5 could result in:
(a b a b a) or (a -b a -b a) or (a b c b a) or (a -b a b a)
and so on. higher min and max settings will produce
more variations (more combinations)
best way is to experiment with the different settings to
see what happens.
seed works like in all other random-functions: non-nil
numbers between 0.0001 and 0.9999 lets you control the
random-generator.
(rnd-ornament 3 7 '(a b c d e) :rnd-seed nil)
-> always different
(rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.03)
->((a -b a) (b c d c b) (c d c b) (d e f g f e) (e d c d))
(rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.07)
->((a -b a) (b a b a b) (c b a b c b) (d e d) (e d c d e d))
rnd-type let you select between 'norm and 'gauss
(rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.11 :rnd-type 'norm)
->((a -b a) (b a b) (c d c d c b) (d e d c d c d) (e d c d))
same seed but different rnd-type:
(rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.11 :rnd-type 'gauss)
->((a -b a) (b a -b -c -b a) (c b a b c) (d c b c d) (e f g f e d))
pcnt controls how many percent of notes that will be
ornamented.
(rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.31 :rnd-type 'norm :pcnt 50)
->((a) (b a b a) (c b c) (d c b c d) (e))
when to-pcnt is non nil you can scale from pcnt to to-pcnt
(rnd-ornament 3 7 '(a b c d e f g h i)
:rnd-seed 0.003 :rnd-type 'norm :pcnt 0 :to-pcnt 100)
->((a) (b) (c) (d) (e d c d) (f) (g) (h g h i h g) (i h i))
with step you control the step-amount:
step '(1) ornaments (a b c) and '(2) (a c e)
this can make arpeggios.
step can also be a list of integers.
(rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.31 :rnd-type 'norm :pcnt 100 :step 3)
->((a -d a) (b -c -f -c b) (c f c -b) (d a -d a d) (e h e))
(rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.31 :rnd-type 'norm :pcnt 100 :step '(1 5 3))
->((a -b a) (b -e -j -e b) (c f c -b) (d c b c d) (e j e))
also min and max can be lists of integers:
this way you can control more exactly the
ornamentation-lengths for each note.
(rnd-ornament '(1 3 5) '(2 4 6) '(a b c d e) :rnd-seed 0.11)
->((a) (b a) (c d c) (d) (e f))
with type 'rnd repeated notes are allowed.
(rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.31 :type 'rnd)
->((a b b) (b c c) (c d d e) (d e f g h) (e g h i i i))
with step-type 'change and a list of step-values
step will change inside each ornamented note:
step '(1 3) step-type 'norm could be (a b a) (a d a)
step '(1 3) step-type 'change could be (a b e) (a -b c)
(rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.11 :step '(1 4)
:step-type 'norm)
->((a -b a) (b -d b) (c d c d c b) (d h d -b d -b d) (e d c d))
(rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.11 :step '(1 4)
:step-type 'change)
->((a -b d) (b a e) (c d -b a e d) (d h g c d -b a) (e a -e -d))
when rhy is a rhythm instead of nil you will get
matching ornamentation of the rhythm
(rnd-ornament 2 4 '(a b c) :rhy '(1/2 1/4) :rnd-seed 0.31)
->(((a -b) (b a b) (c b)) ((1/4 1/4) (1/12 1/12 1/12) (1/4 1/4)))
with rhy-type you can select between 'all 'evens and 'odds
with 'evens length-repeat-l is used and with 'odds
length-repeat-var is used 'all pick among the two.
(rnd-ornament 4 7 '(a b c) :rhy '(1/2 1/4) :rnd-seed 0.12
:rhy-type 'all)
->(((a -b -c -b a) (b a b a) (c d c b c)) (((1/12 1/12 1/12 1/8 1/8)) ((1/16 1/16 1/16 1/16)) ((1/12 1/12 1/12 1/8 1/8))))
(rnd-ornament 4 7 '(a b c) :rhy '(1/2 1/4) :rnd-seed 0.12
:rhy-type 'evens)
->(((a -b -c -b a) (b a -b a b) (c d e d c)) ((1/10 1/10 1/10 1/10 1/10) (1/20 1/20 1/20 1/20 1/20) (1/10 1/10 1/10 1/10 1/10)))
(rnd-ornament 4 7 '(a b c) :rhy '(1/2 1/4) :rnd-seed 0.12
:rhy-type 'odds)
->(((a -b -c -b a) (b a -b a b) (c b c b c)) (((1/12 1/12 1/12 1/8 1/8)) ((1/16 1/16 1/24 1/24 1/24)) ((1/8 1/8 1/12 1/12 1/12))))
did I forget anything?
to be honest I don't now.